home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 676-700 / 682 / reqchange / extra / reqask.c < prev    next >
C/C++ Source or Header  |  1995-03-18  |  2KB  |  103 lines

  1.  
  2. /* ReqAsk. Requester based Ask replacement. Public Domain by Magnus Holmgren
  3. in 1992.
  4.  
  5. Compile with DICE:
  6. dcc -pr -2.0 -ms -proto -mRR -o ReqAsk ReqAsk.c
  7.  
  8. Other compilers requires changes!
  9. */
  10.  
  11. #include <stdlib.h>
  12. #include <exec/types.h>
  13. #include <exec/execbase.h>
  14. #include <dos/rdargs.h>
  15. #include <dos/dos.h>
  16. #include <intuition/intuition.h>
  17. #include <clib/dos_protos.h>
  18. #include <clib/exec_protos.h>
  19. #include <clib/intuition_protos.h>
  20.  
  21. extern struct DOSBase *DOSBase;
  22. extern struct IntuitionBase *IntuitionBase;
  23. extern struct ExecBase *SysBase;
  24.  
  25. struct EasyStruct es =
  26. {
  27.     sizeof( struct EasyStruct ),
  28.     0,
  29.     NULL,
  30.     NULL,
  31.     NULL,
  32. };
  33.  
  34. #define BODYFMT   0
  35. #define GADGETFMT 1
  36. #define TITLE     2
  37. #define VARIABLE  3
  38. #define GLOBAL    4
  39.  
  40. const TEXT VersTag[] = "$VER: ReqAsk V1.0 (20.01.92)";
  41. const TEXT OS2Required_Msg[] = "You need OS 2.04+\n";
  42. ULONG flags[] = { 0, 0, 0, 0, 0 };
  43.  
  44. _main()
  45. {
  46.   struct RDArgs *rdargs;
  47.   STRPTR title, body, gadget;
  48.   ULONG ret;
  49.   TEXT buf[ 1 ];
  50.  
  51.   if( SysBase -> LibNode . lib_Version < 37 )
  52.   {
  53.       Write( ( BPTR ) Output(),
  54.              OS2Required_Msg,
  55.              sizeof( OS2Required_Msg ) - 1 );
  56.       _exit( RETURN_FAIL );
  57.   }
  58.  
  59.   rdargs = ReadArgs( "BODYFMT/A,GADFMT,TITLE,VAR,GLOBAL/S", flags, NULL );
  60.  
  61.   if( rdargs == NULL )
  62.   {
  63.     PrintFault( IoErr(), "Error in argument line", );
  64.     _exit( RETURN_ERROR );
  65.   }
  66.  
  67.   if( *( ( STRPTR ) flags[ BODYFMT ] ) == '\0' )
  68.   {
  69.     PutStr( "No valid BODYFMT string" );
  70.     _exit( RETURN_ERROR );
  71.   }
  72.  
  73.   if( !flags[ GADGETFMT ] || *( ( STRPTR ) flags[ GADGETFMT ] ) == '\0' )
  74.   {
  75.     flags[ GADGETFMT ] = "Yes|No";
  76.   }
  77.  
  78.   if( !flags[ VARIABLE ] || *( ( STRPTR ) flags[ VARIABLE ] ) == '\0' )
  79.   {
  80.     flags[ VARIABLE ] = "ReqAskResult";
  81.   }
  82.  
  83.   es.es_Title = ( STRPTR ) flags[ TITLE ];
  84.   es.es_TextFormat = ( STRPTR ) flags[ BODYFMT ];
  85.   es.es_GadgetFormat = ( STRPTR ) flags[ GADGETFMT ];
  86.  
  87.   ret = EasyRequestArgs( NULL, &es, NULL, NULL );
  88.   buf[ 0 ] = ( UBYTE ) ( ret + '0' );
  89.   ret = RETURN_OK;
  90.  
  91.   if( !SetVar( ( STRPTR ) flags[ VARIABLE ],
  92.                buf,
  93.                1,
  94.                flags[ GLOBAL ] ? GVF_GLOBAL_ONLY : GVF_LOCAL_ONLY ) )
  95.   {
  96.     PutStr( "Error setting result variable\n" );
  97.     ret = RETURN_FAIL;
  98.   }
  99.  
  100.   FreeArgs( rdargs );
  101.   _exit( ret );
  102. }
  103.